微软并行模式库(PPL)

您所在的位置:网站首页 ppl 亲亲 微软并行模式库(PPL)

微软并行模式库(PPL)

2023-08-13 09:32| 来源: 网络整理| 查看: 265

PPL官网文档: https://docs.microsoft.com/zh-cn/cpp/parallel/concrt/concurrency-runtime?view=vs-2019

并发运行时体系结构 PPL库组件:

组件头文件并行模式库 (PPL)ppl.hconcurrent_queue.hconcurrent_vector.h异步代理库agents.h任务计划程序concrt.h资源管理器concrtrm.h

并发运行时动态库–concrtXXX.dll,使用ppl时,发布版本会依赖并发运行时库。 任务并行(并发运行时) concurrency::concurrent_vector concurrency::task concurrency::task_group类、concurrency::parallel_invoke算法 concurrency::task::then concurrency::when_all、concurrency::when_any

并行算法 parallel_for parallel_for_each parallel_invoke Parallel_transform parallel_reduce 分区的工作 concurrency::affinity_partitioner concurrency::auto_partitioner concurrency::simple_partitioner concurrency::static_partitioner 并行排序 concurrency:: parallel_sort concurrency:: parallel_buffered_sort concurrency:: parallel_radixsort

算法描述排序机制排序稳定性内存要求时间复杂性迭代器访问parallel_sort通用的基于比较的排序。基于比较(升序)不稳定NoneO((N/P)log(N/P) + 2N((P-1)/P))随机parallel_buffered_sort需要 O(N) 空间,基于比较的更快的通用排序。基于比较(升序)不稳定需要额外的O(n)空间O((N / P)log(N))随机parallel_radixsort需要O(N)空间,基于整数键的排序。基于哈希稳定版需要额外的O(n)空间O(N/P)随机

这些并行排序算法支持移动语义。 可以定义一个移动赋值运算符,以使交换操作的出现更有效。 有关移动语义和移动赋值运算符的详细信息,请参阅右值引用声明符:&&,并移动构造函数和移动赋值运算符 (C++)。 如果您不提供移动赋值运算符或交换函数,排序算法将使用复制构造函数。

并行容器和对象 concurrent_vector 类 concurrent_queue 类 concurrent_unordered_map 类 concurrent_unordered_multimap 类 concurrent_unordered_set 类 concurrent_unordered_multiset 类 combinable 类

取消任务 https://docs.microsoft.com/zh-cn/cpp/parallel/concrt/cancellation-in-the-ppl?view=vs-2019 任务取消是十分重要的技术

bool do_work() { // Simulate work. wcout


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3